home *** CD-ROM | disk | FTP | other *** search
/ PsL Monthly 1993 December / PSL Monthly Shareware CD-ROM (December 1993).iso / prgmming / dos / pascal / fastscr.com / FAST.ASM < prev    next >
Encoding:
Assembly Source File  |  1989-06-27  |  8.9 KB  |  330 lines

  1. .Model TPascal
  2.  
  3. .Code
  4.  
  5. Locals @@
  6.  
  7. CheckSnow          PROC NEAR
  8.                    Push      Dx
  9.                    Push      Bx
  10.                    Push      Bp
  11.                    Push      Ax
  12.  
  13.                    Mov       Dx, 3DAh
  14.                    Mov       Bl, 9
  15.                    Mov       Bp, Ax
  16.  
  17. @@Repeat:
  18.                    In        Al, Dx
  19.                    Rcr       Al, 1
  20.                    Jb        @@Repeat
  21.  
  22. @@Done:
  23.                    Pop       Ax
  24.                    Pop       Bp
  25.                    Pop       Bx
  26.                    Pop       Dx
  27.                    Ret
  28. CheckSnow          ENDP
  29.  
  30. PUBLIC FfillAsm, FfillGetColorAsm, FcopyAsm, FwriteAsm, FwriteGetColorAsm
  31. PUBLIC FattrAsm, FwriteVasm, FwriteVGetColorAsm
  32.  
  33. FfillGetColorAsm   PROC NEAR FillChar:Word, Dest:DWord, Rows:Word, Cols:Word, SkipDest:Word, Snow:Byte
  34.                    Push      Ds
  35.  
  36.                    Les       Di, Dest
  37.                    Mov       Ax, FillChar
  38.                    Mov       Bx, Rows
  39.                    Mov       Dx, SkipDest
  40.  
  41.                    Cld
  42.                    Cmp       Snow,1
  43.                    Je        @@SnowRepeat
  44. @@Repeat:
  45.                    Mov       Cx, Cols
  46.  
  47. @@Repeat1:
  48.                    StosB
  49.                    Inc       Di
  50.                    Loop      @@Repeat1
  51.  
  52.                    Add       Di, Dx
  53.  
  54.                    Dec       Bx
  55.                    Jne       @@Repeat
  56.  
  57. @@Done:
  58.                    Pop       Ds
  59.                    Ret
  60.  
  61. @@SnowRepeat:
  62.                    Mov       Cx, Cols
  63.  
  64. @@SnowRepeat1:
  65.                    Call      CheckSnow
  66.                    StosB
  67.                    Inc       Di
  68.                    Loop      @@SnowRepeat1
  69.  
  70.                    Add       Di, Dx
  71.  
  72.                    Dec       Bx
  73.                    Jne       @@SnowRepeat
  74.                    Jmp       @@Done
  75. FfillGetColorAsm   ENDP
  76.  
  77. FfillAsm           PROC NEAR FillChar:Word, Dest:DWord, Rows:Word, Cols:Word, SkipDest:Word, Snow:Byte
  78.                    Push      Ds
  79.  
  80.                    Les       Di, Dest
  81.                    Mov       Ax, FillChar
  82.                    Mov       Bx, Rows
  83.                    Mov       Cx, Cols
  84.                    Mov       Dx, SkipDest
  85.  
  86.                    Cld
  87.                    Cmp       Snow, 1
  88.                    Je        @@SnowRepeat
  89. @@Repeat:
  90.                    Mov       Cx, Cols
  91.                    Rep       StosW
  92.  
  93.                    Add       Di, Dx
  94.  
  95.                    Dec       Bx
  96.                    Jne       @@Repeat
  97.  
  98. @@Done:
  99.                    Pop       Ds
  100.                    Ret
  101.  
  102. @@SnowRepeat:
  103.                    Mov       Cx, Cols
  104. @@SnowRepeat1:
  105.                    Call      CheckSnow
  106.                    StosW
  107.                    Loop      @@SnowRepeat1
  108.                    Add       Di, Dx
  109.  
  110.                    Dec       Bx
  111.                    Jne       @@SnowRepeat
  112.                    Jmp       @@Done
  113. FfillAsm           ENDP
  114.  
  115. FcopyAsm           PROC NEAR Source:Dword, Dest:Dword, Rows:Word, Cols:Word, SkipSource:Word, SkipDest:Word, Snow:Byte
  116.                    Push      Ds
  117.  
  118.                    Mov       Bx, SkipSource
  119.                    Mov       Dx, SkipDest
  120.                    Lds       Si, Source
  121.                    Les       Di, Dest
  122.                    Mov       Ax, Rows
  123.                    Cld
  124.                    Cmp       Snow, 1
  125.                    Je        @@SnowRepeat
  126.  
  127. @@Repeat:
  128.                    Mov       Cx, Cols
  129.                    Rep       MovsW
  130.  
  131.                    Add       Si, Bx
  132.                    Add       Di, Dx
  133.  
  134.                    Dec       Ax
  135.                    Jne       @@Repeat
  136.  
  137. @@Done:
  138.                    Pop       Ds
  139.                    Ret
  140.  
  141. @@SnowRepeat:
  142.                    Mov       Cx, Cols
  143. @@SnowRepeat1:
  144.                    Call      CheckSnow
  145.                    MovsW
  146.                    Loop      @@SnowRepeat1
  147.  
  148.                    Add       Si, Bx
  149.                    Add       Di, Dx
  150.  
  151.                    Dec       Ax
  152.                    Jne       @@SnowRepeat
  153.                    Jmp       @@Done
  154.  
  155. FcopyAsm           ENDP
  156.  
  157. FwriteAsm          PROC NEAR Source:DWord, Dest:DWord, Len:Word, Color:Word, Snow:Byte
  158.                    Mov       Dx, Ds
  159.  
  160.                    Lds       Si, Source
  161.                    Les       Di, Dest
  162.                    Mov       Cx, Len
  163.                    Mov       Ax, Color
  164.                    Cld
  165.                    Cmp       Snow, 1
  166.                    Je        @@SnowRepeat
  167.  
  168. @@Repeat:
  169.                    Mov       Al, Ds:[Si]
  170.                    StosW
  171.                    Inc       Si
  172.                    Loop      @@Repeat
  173.  
  174. @@Done:
  175.                    Mov       Ds, Dx
  176.                    Ret
  177.  
  178. @@SnowRepeat:
  179.                    Mov       Al, Ds:[Si]
  180.                    Call      CheckSnow
  181.                    StosW
  182.                    Inc       Si
  183.                    Loop      @@SnowRepeat
  184.                    Jmp       @@Done
  185.  
  186. FwriteAsm          ENDP
  187.  
  188. FwriteGetColorAsm  PROC NEAR Source:DWord, Dest:DWord, Len:Word, Snow:Byte
  189.                    Mov       Dx, Ds
  190.  
  191.                    Lds       Si, Source
  192.                    Les       Di, Dest
  193.                    Mov       Cx, Len
  194.                    Cmp       Snow, 1
  195.                    Je        @@SnowRepeat
  196.  
  197. @@Repeat:
  198.                    Mov       Al, Ds:[Si]
  199.                    StosB
  200.                    Inc       Si
  201.                    Inc       Di
  202.                    Loop      @@Repeat
  203.  
  204. @@Done:
  205.                    Mov       Ds, Dx
  206.                    Ret
  207.  
  208. @@SnowRepeat:
  209.                    Mov       Al, Ds:[Si]
  210.                    Call      CheckSnow
  211.                    StosB
  212.                    Inc       Si
  213.                    Inc       Di
  214.                    Loop      @@SnowRepeat
  215.                    Jmp       @@Done
  216. FwriteGetColorAsm  ENDP
  217.  
  218. FattrAsm           PROC NEAR FillChar:Word, Dest:DWord, Rows:Word, Cols:Word, SkipDest:Word, Snow:Byte
  219.                    Push      Ds
  220.  
  221.                    Les       Di, Dest
  222.                    Mov       Ax, FillChar
  223.                    Mov       Bx, Rows
  224.                    Mov       Dx, SkipDest
  225.  
  226.                    Cld
  227.                    Cmp       Snow,1
  228.                    Je        @@SnowRepeat
  229. @@Repeat:
  230.                    Mov       Cx, Cols
  231.  
  232. @@Repeat1:
  233.                    Mov       Al, Es:[Di]
  234.                    StosW
  235.                    Loop      @@Repeat1
  236.  
  237.                    Add       Di, Dx
  238.  
  239.                    Dec       Bx
  240.                    Jne       @@Repeat
  241.  
  242. @@Done:
  243.                    Pop       Ds
  244.                    Ret
  245.  
  246. @@SnowRepeat:
  247.                    Mov       Cx, Cols
  248.  
  249. @@SnowRepeat1:
  250.                    Mov       Al, Es:[Di]
  251.                    Call      CheckSnow
  252.                    StosW
  253.                    Loop      @@SnowRepeat1
  254.  
  255.                    Add       Di, Dx
  256.  
  257.                    Dec       Bx
  258.                    Jne       @@SnowRepeat
  259.                    Jmp       @@Done
  260. FattrAsm           ENDP
  261.  
  262. FwriteVasm         PROC NEAR Source:DWord, Dest:DWord, Len:Word, Color:Word, SkipDest, Snow:Byte
  263.                    Mov       Dx, Ds
  264.  
  265.                    Lds       Si, Source
  266.                    Les       Di, Dest
  267.                    Mov       Cx, Len
  268.                    Mov       Ax, Color
  269.                    Mov       Bx, SkipDest
  270.                    Cld
  271.                    Cmp       Snow, 1
  272.                    Je        @@SnowRepeat
  273.  
  274. @@Repeat:
  275.                    Mov       Al, Ds:[Si]
  276.                    Mov       Es:[Di], Ax
  277.                    Add       Di, Bx
  278.                    Inc       Si
  279.                    Loop      @@Repeat
  280.  
  281. @@Done:
  282.                    Mov       Ds, Dx
  283.                    Ret
  284.  
  285. @@SnowRepeat:
  286.                    Mov       Al, Ds:[Si]
  287.                    Call      CheckSnow
  288.                    Mov       Es:[Di], Ax
  289.                    Add       Di, Bx
  290.                    Inc       Si
  291.                    Loop      @@SnowRepeat
  292.                    Jmp       @@Done
  293.  
  294. FwritevAsm         ENDP
  295.  
  296. FwriteVGetColorAsm PROC NEAR Source:DWord, Dest:DWord, Len:Word, SkipDest:Word, Snow:Byte
  297.                    Mov       Dx, Ds
  298.  
  299.                    Lds       Si, Source
  300.                    Les       Di, Dest
  301.                    Mov       Cx, Len
  302.                    Mov       Bx, SkipDest
  303.                    Cmp       Snow, 1
  304.                    Je        @@SnowRepeat
  305.  
  306. @@Repeat:
  307.                    Mov       Al, Ds:[Si]
  308.                    Mov       Es:[Di], Al
  309.                    Add       Di, Bx
  310.                    Inc       Si
  311.                    Loop      @@Repeat
  312.  
  313. @@Done:
  314.                    Mov       Ds, Dx
  315.                    Ret
  316.  
  317. @@SnowRepeat:
  318.                    Mov       Al, Ds:[Si]
  319.                    Call      CheckSnow
  320.                    StosW
  321.                    Inc       Di
  322.                    Inc       Si
  323.                    Loop      @@SnowRepeat
  324.                    Jmp       @@Done
  325. FwriteVGetColorAsm ENDP
  326.  
  327.  
  328. CODE               ENDS
  329. END
  330.